iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
自我挑戰組

30天FUME TO FHIR轉換實戰 - 從入門到燃燒殆盡系列 第 12

[FUME TO FHIR] 12 HAPI FHIR on Docker 建置

  • 分享至 

  • xImage
  •  

 V.FHIR Server

12 HAPI FHIR on Docker 建置

終於要開始來建置FHIR Server了,這裡我會使用Docker來建置HAPI FHIR,

https://www.docker.com/

先安裝Docker Desktop,當然也可以選擇單純安裝Docker CLI,
在這裡我們主要直接使用docker compose來執行建置,所以差異不大

docker-compose.yml:

version: '3.7'

services:

  db:
    container_name: db
    image: postgres
    restart: always
    environment:
   POSTGRES_USER: admin
      POSTGRES_PASSWORD: admin
      POSTGRES_DB: hapi
    ports:
      - "5433:5432"

  hapi-fhir:
    container_name: fhir
    image: hapiproject/hapi:latest
    ports:
      - "8080:8080"
    environment:
      HAPI_FHIR_USERNAME : admin
      HAPI_FHIR_PASSWORD : admin
      hapi.fhir.ig_runtime_upload_enabled: true 
      hapi.fhir.custom_content_path: /custom
      profiles.active: r4
      spring.datasource.url: 'jdbc:postgresql://fhirdb:5432/hapi'
      spring.datasource.username: admin
      spring.datasource.password: admin
      spring.datasource.driverClassName: org.postgresql.Driver
      spring.jpa.properties.hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
      spring.jpa.properties.hibernate.search.enabled: false
   

docker-compose.yml建立好後放到你想要建立的目錄地址

CMD -> cd 自訂目錄
CMD -> docker compose up
啟動

初次建立會需要一些時間,在實際應用的場合裡username與password不會這麼隨便,記得要修改跟變數化隱藏

若是不想使用compose的也可以自行pull image run

等到建置完成後可以嘗試在瀏覽器中輸入 http://localhost:8080
若HAPI FHIR正常運作可看到HAPI FHIR的首頁畫面

也可以從docker中的訊息中找尋:
Finished bulk export job deletion with nothing to do

docker-compose.yml中有幾個內容要稍微注意一下,

hapi.fhir.ig_runtime_upload_enabled: true -> 在HAPI啟動時可動態匯入IG,若有使用REST匯入IG需求需設為true,
正式使用時建議不要開啟(false),以免有心人一次大量匯入IG Resource造成卡頓

hapi.fhir.custom_content_path: /custom -> 在HAPI目錄下的custom資料夾中可放入
welcome.html, logo.png與 about.html,作為自定義logo與說明的文件

到此最簡單的HAPI FHIR Server建置就完成了,讀者到這一步可以開始透過REST或GUI介面把玩FHIR Server了

HAPI FHIR的Document中有更多關於環境變數的設定與內容,這裡只是最粗淺的先試著讓HAPI FHIR跑起來。

本篇系列文不會深入談到HAPI FHIR Java SDK與結構實作,實際要讓HAPI FHIR上線提供外部使用,會需要經過很多部分的整理與添加支援

會在這裡花一個章節談及FHIR Server的主要原因是後面會提到的FUME轉換器可以利用FHIR Server持有的Resource來輔助或加速轉換的流程,
僅將FHIR Server作為載台使用。

明天開始來談HAPI FHIR的基本操作,一些可能不是那麼常用到但可以嘗試使用的方式,之所以會去研究這些API的使用方法是因為Docker建置有很多問題,
剛好提供一些教學沒談過的方法給大家。


上一篇
[FUME TO FHIR] 11 FHIR Server介紹,HAPI, Aidbox, Firely等
下一篇
[FUME TO FHIR] 13 HAPI FHIR 操作說明 CRUD與Swagger,POSTMan與HAPI FHIR互動的方式
系列文
30天FUME TO FHIR轉換實戰 - 從入門到燃燒殆盡30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言